home *** CD-ROM | disk | FTP | other *** search
/ Mac Format 1994 October / Macformat17.cdr / Shareware City / Developers / xlispmac / src / README.UPD < prev    next >
Text File  |  1994-05-28  |  18KB  |  441 lines

  1.                                                         05/11/94
  2. COMMA-AT did not complain about non-lists. APPEND would hang on
  3. circular lists. COND allowed non list clauses. (Bugs reported by
  4. Gottfried Ira). CONCATENATE would hang on circular lists.
  5.  
  6. Removed several free() calls of obviously NULL pointers in the
  7. unixstuf.c, dosstuff.c, and winstuff.c files.  (Error found by Luke
  8. Tierney.)
  9.  
  10. Some crashes with XLISPWIN were traced to optimization errors in
  11. Borland C++ V3.1. Problem fixed by turning off offending optimization.
  12.  
  13.                                                         04/26/94
  14. There was a bug involving GO's within UNWIND-PROTECT's which was fixed
  15. by changing the mechanism that the GO target was propagated back to
  16. the TAGBODY. Resulting code is smaller and implementation is much
  17. cleaner. (Bug reported by Gottfried Ira)
  18.  
  19. Implementation documentation upgraded to include operation of contexts.
  20. Typo in CATCH documentation fixed.
  21.  
  22. Fixed potential name clash in inspect.lsp.
  23.  
  24.                                                         04/16/94
  25. Changed "forth" to "fourth" in place form definition in COMMON2.LSP.
  26. Changed FACT.LSP so factorial function works for (FACT 0). (Fix by
  27. Mihai Tache, moj@karla.indinf.pub.ro).
  28.  
  29.                             03/14/94
  30. Bug fixed in MAP-INTO with more than three arguments. (Fix by Luke Tierney).
  31.  
  32.                                                         02/15/94
  33. A bug was fixed in stepper.lsp.
  34.  
  35.                                                         02/06/94
  36. A buffer was too small for filepathnames in the Unix versions. This
  37. has been fixed by making STRMAX be MAXPATHLEN for UNIX only. Some
  38. declarations fixed up for non-ANSI C compilers.
  39.  
  40. Changes made so XLISP will compile on DEC Alpha.  (From Luke Tierney)
  41.  
  42. GENSYM will now handle numeric parts greater than 32767 on 16 bit 
  43. integer systems. (Another old bug just found, from Luke Tierney)
  44.  
  45. Addresses will now print better on some systems (Luke Tierney)
  46.  
  47. Status messages (from the ROOM function and from control-T) display
  48. nicer, and in the latter case, display more information. In the Windows
  49. version, control-T no longer puts up a status dialog box, and the menu
  50. status selection now toggles a separate status window which is updated
  51. once a second.
  52.                                                         02/02/94
  53. The "long standing bug" in PROGV, "fixed" 11/19/93, was only half
  54. fixed.  It's now really fixed. (Courtesy Gottfried Ira)
  55.  
  56. The implicit BLOCK in DOTIMES and DOLIST now encloses the evaluation
  57. of the count/list argument. This allows (dotimes (i (return 'a))) to
  58. work.  (Problem pointed out by Gottfried Ira).
  59.  
  60. Fixed bug that would cause (cond ((values 1 2))) to return 1, 2, rather
  61. than NIL. (Fix by Luke Tierney)
  62.  
  63. The loop index can now be safely used in the return expression of
  64. DOTIMES. Before, it wasn't protected from garbage collection.
  65.  
  66.                                                         02/01/94
  67. PP.LSP use of READ needed to be changed to handle EOF (reported by
  68. thantos@runic.via.mind.org (Alex Williams)). Overflow during
  69. addition/subtraction of complex integers was not handled properly
  70. (fix by Luke Tierney).
  71.  
  72.                                                         01/29/94 
  73. The following bugs were fixed with the Windows version: Column set
  74. wrong on newlines (reported by Alex Williams).  Marked text did not
  75. unmark when the enter key was hit and cursor was at the bottom of the
  76. display. Copy command changed so that final newline not placed in
  77. clipboard -- this makes the command more useful in that the last (or
  78. only) line of pasted text can be edited.
  79.  
  80.                             01/03/94
  81. DEFUN and DEFMACRO affect global values, and not local bindings (such
  82. as with flet or macrolet). Missing unixprim.o in UNIX makefiles fixed.
  83. CATCH, THROW, and CASE now signal errors if no arguments. These bugs
  84. found by ira@iue.tuwien.ac.at (Gottfried Ira).
  85.  
  86. 1- of max negative integer now produces correct answer when
  87. NOOVFIXNUM is used.  COMMON2.LSP changed so that APROPOS returns no
  88. value when multiple values are compiled but packages are not
  89. compiled.  Added #ifdef MULVALS at a line in xlimage.c that should
  90. not compile if MULVALS is not defined. Fixed documentation error in
  91. <eofp> argument; this also changes glos.txt.  These bugs were found
  92. by kok@cs.colostate.edu (Jan Kok).
  93.  
  94. Removed reset of lposition in osflush(). Before the change, flushing
  95. the keystroke buffer would tell the system the cursor was at the
  96. left margin, messing up FRESH-LINE, among other functions.
  97.  
  98. xlgetcolumn() did not correctly calculate the column number of USTREAMs.
  99. (Fix by Jan Kok).
  100.  
  101. Corrected Y-OR-N-P to read a single character. Added YES-OR-NO-P
  102. which reads in a line of text. Both functions now work according to
  103. Common Lisp definitions.
  104.  
  105. Error in DO, PROG, and, LET could cause garbage collection problems.
  106. (Fix by Luke Tierney). [After making this fix, a simulation program I have
  107. that would run a long time and then crash suddenly started working!]
  108.  
  109. An error in readme.win documentation file made created XLISPWIN.INI
  110. files worthless.
  111.  
  112. (Final release, 12/17/93)                12/17/93
  113. Time to let go...
  114.  
  115. (Still working on it, released on BBBBBS 2.1f)        11/19/93
  116.  
  117. Added far pointer quicksort function to MEDMEM MS-DOS versions,
  118. allowing sorting of all sequences.
  119.  
  120. Added graphics to Windows version. Note that graphics and colors are
  121. not refreshed if window is un-obscured.
  122.  
  123. The MODE function now returns dimensional information.
  124.  
  125. Fixed reported bugs in unixprims.c and function EVALHOOK. Allowed change
  126. of statically allocated small FIXNUM range in xlisp.h. Fixed external
  127. symbol initiation problem with packages. Cosmetic changes to Windows
  128. version, and grayed Run-Proceed and Run-ReturnALevel when not at a break
  129. level.
  130.  
  131. It never ends! Luke Tierney dropped a bunch of code off, so now READ,
  132. READ-CHAR, READ-BYTE, and READ-LINE take the eof related arguments, and
  133. there are new FORMAT directives O X # ? | { } ( ) [ and ].
  134.  
  135. Obscure bugs in defsetf and macroexpand fixed. Long standing bug in
  136. xlprogv fixed. Bug involving both optional and keyword arguments fixed.
  137.  
  138. Added *READ-SUPPRESS* basically for the #+ and #- reader macros. Not
  139. documented here.
  140.  
  141.  
  142. (RELEASED ON Bitter Butter Better BBS)            11/11/93
  143.  
  144. Added INSPECT.LSP, a replacement for REPAIR.LSP. Much cleaner design.
  145.  
  146. Completed Microsoft Windows version.
  147.  
  148.  
  149. (NOT RELEASED)                        10/06/93
  150.  
  151. Version changed to 2.1f, for "final" version. :-)
  152.  
  153. The repair function has been revised and will now handle structures.
  154. This venerable piece of code I wrote 18 years ago and is really showing
  155. its age.
  156.  
  157. I've added a glossary function (glos.lsp and glos.txt) for online
  158. documentation. This function combined with the tab key in the DOS
  159. environment provide a pretty handy programming environment.
  160.  
  161. The C variable "true" has been changed to "s_true" to reflect on the
  162. standard naming practice.
  163.  
  164. Added MAP-INTO and COMPLEMENT.
  165.  
  166. (NOT RELEASED)                                          09/26/93 
  167. Multiple values and packages features from Luke Tierney added. These
  168. are compilation options. .LSP files updated to match (I hope!). The
  169. entire set of functions, as described in CLtL2 have been added, some
  170. functions in COMMON.LSP.
  171.  
  172. Added SPECIALP, MARK-AS-SPECIAL, and (in COMMON.LSP) EVAL-WHEN, DECLARE,
  173. and PROCLAIM. 
  174.  
  175. Fixed some small bugs with FLATSIZE and objects.
  176.  
  177.  
  178. (NOT RELEASED)                                          09/20/93
  179. Added compilation option LEXBIND for lexical binding of GO and
  180. RETURN (Luke Tierney). Fixed ROUND to round to the nearest even.
  181. Added comments for DEFVAR DEFCONSTANT DEFPARAMETER and DEFSTRUCT, and
  182. fixed bug in HASH (from Jan Kok).
  183.  
  184. (NOT RELEASED)                        09/16/93
  185. Fixed keyword args so duplicate key args ignored. Fixed baktrace
  186. of SUBRs where keyword args are used. Added :ALLOW-OTHER-KEYS. Added
  187. Luke Tierney's *startup-functions*, *command-line*, *load-file-arguments*,
  188. *top-level-loop*, TOP-LEVEL-LOOP, and RESET-SYSTEM.
  189.  
  190. (NOT RELEASED)                        07/16/93
  191. Added GETF, and GETF placeform for SETF. Added third "default"
  192. argument for GET. Added PSETF. Corrected bugs in SETQ/PSETQ/SETF that
  193. allowed an odd number of arguments with no error. Added symbol name
  194. completion (MS-DOS), defined C constants for all special keyboard
  195. characters. Added LIST-LENGTH. Added :INITIAL-ELEMENT and
  196. :INITIAL-CONTENTS to MAKE-ARRAY. Added :CAPITALIZE for *PRINT-CASE*.
  197. Added functions STRING-CAPITALIZE and NSTRING-CAPITALIZE. Added
  198. IDENTITY as internal function, and ignore :KEY being #'IDENTITY.
  199. Improved performance of SORT, and will also sort all sequences
  200. (except for MEDMEM compilations in MS-DOS). Added NSUBST, NSUBST-IF,
  201. NSUBST-IF-NOT, NSUBLIS, and fixed errors in SUBLIS and SUBST.
  202.  
  203. (NOT RELEASED)                        06/21/93
  204. Since I intend version 2.1f to be my last, I decided to to what
  205. I should have done earlier -- make ERROR CERROR and BREAK compatible
  206. with Common Lisp. It sure makes usage nicer. Because CERROR
  207. uses the arguments twice, I added the ~* directive to FORMAT. I
  208. suppose I should make PRINT do an initial newline instead of a
  209. trailing one, but this is not a major problem since most programs
  210. I've seen use FORMAT these days.
  211.  
  212. Latest version of GCC now handles printing of NANs properly --
  213. XLISP source changed appropriately.
  214.  
  215. Added COUNT, COUNT-IF-NOT, POSITION, POSITION-IF-NOT, FIND, and
  216. FIND-IF-NOT. Because of recoding of COUNT-IF, POSITION-IF, and
  217. FIND-IF, no more code space is used than before.
  218.  
  219. Added system stack checking code (based on code supplied by
  220. Richard Zidlicky). Code has some system dependencies, so is not
  221. enabled for all configurations. Basic effects of the code (which
  222. is enabled by defining STSZ to the stack size, typically done on
  223. the compiler command line):
  224. 1. EDEPTH and ADEPTH set appropriate to size.
  225. 2. Low-water mark is checked in EQUAL, SUBST, SUBLIS, PRIN*, and READ
  226.    functions, which could cause a system stack overflow before. EVAL
  227.    is also checked, however overflow here is unlikely if EDEPTH and
  228.    ADEPTH are small enough.
  229. 3. A special garbage collector stack low-water-mark prevents the
  230.    garbage collector from running (and does a TOP-LEVEL) when it
  231.    appears that there would not be enough stack left. A check within
  232.    the garbage collector code causes a fatal error message if the
  233.    GC is attempted but the stack runs out anyway. If this low-water-mark
  234.    is set to zero, then no check is performed. This is recommended for
  235.    environments where the stack can't really run out but this feature
  236.    is desired for items 2 and 4 in this list.
  237. 4. A new function SET-STACK-MARK is used to set a stack mark that
  238.    if remaining free stack space drops below a break level will
  239.    be entered. This provides excellent means to catch runaway 
  240.    recursive functions in a state that allows debugging. The argument
  241.    value is the number of bytes remaining in the stack and is limited
  242.    at the low end to be greater than the internal low-water mark
  243.    and at the high end to be somewhat less than the free memory at
  244.    the time the function is executed. SET-STACK-MARK returns the
  245.    previous value.
  246.  
  247. Installed stack checking for Microsoft C, Borland (Turbo) C, 
  248. Top Speed C, and GCC.
  249.  
  250. Fixed error in DEFSETF.
  251.  
  252.                             06/17/93
  253. (NOT RELEASED)
  254. Bug fixed so LOOP cannot hang system.
  255.  
  256.                             01/21/92
  257. (NOT RELEASED)
  258. Unbound indicator is now not interned. When printed (only possible with
  259. the debugging function GENERIC) shows as #<Unbound>. The former
  260. constant *unbound* is now not defined. FMAKUNBOUND is now an subr
  261. rather than an expr.
  262.  
  263.  
  264.                             12/18/92 
  265. (NOT RELEASED) 
  266.  
  267. MS-DOS version has improved line editing (insert mode, l/r arrow,
  268. delete) with recall of 20 previous lines (up and down arrow keys).
  269. Tab key now ignored. Line length limited to physical line. Invalid
  270. keys cause "beep" rather than error message and abort of line.
  271.  
  272. MS-DOS version calculates "run time" as real time less time spend
  273. waiting for keyboard input or doing SYSTEM function. This is a
  274. reasonable aproximation which ignores file I/O. Runtime is set to
  275. zero at startup.
  276.  
  277. Time to garbage collect is now recorded, and can be displayed with
  278. the ROOM function.
  279.  
  280. ZORTSTUF.C and GCCSTUFF.C merged into DOSSTUFF.C. Support for
  281. Metaware High-C + PharLap dropped because of high cost of product.
  282.  
  283.  
  284.                             11/30/92
  285. Improved complex number code by Hume Smith installed.
  286.  
  287.                             11-03-92
  288. 80386 version changed (in gccstuff.c) so that control-Z character in
  289. ascii files are treated as End-Of-File rather than causing an error
  290. message. Error message "Unexpected EOF" changed to "EOF reached before
  291. expression end."
  292.  
  293.                             09-9-92
  294. Version number changed to 2.1e.
  295.  
  296. MSDOS versions STUFF files altered to allow characters with high
  297. bit set (international) to be entered. The compilation option ASCII8,
  298. defined by default, allows these extended characters to be used
  299. throughtout XLISP-PLUS. The function ALPHA-CHAR-P has been added
  300. since BOTH-CASE-P can no longer be used to indicate characters that
  301. are alphabetic. The function ALPHANUMERICP, which has always existed,
  302. has been added to the documentation where it was strangely missing.
  303.  
  304. The 80386 executable has been compiled with the most recent version
  305. of DJ Delorie's GO32 (1.08) and Ralf Brown's SPAWNO (4.1) which seems
  306. to have corrected a number of virtual memory management problems.
  307. It should be noted that GO32 creates its swap file in the root 
  308. directory of drive C:. To move it elsewhere, specify the directory
  309. in a "SET GO32TMP=" DOS command.
  310.  
  311. Documentation revised.
  312.  
  313. STATUS REPORT:
  314.  
  315. The compiler I've  been working on is too buggy for distribution
  316. at this time, and I don't have the time at the moment to work on it.
  317. Let me say that it integrates real easily in the code (the #defines
  318. for it are already here), and the applications that work have been
  319. 4-6 times faster.
  320.  
  321. The Windows version is on hold as well. The current version can be
  322. compiled using Borland C, with slight mods to the keyboard routines.
  323. Performance however is not good because of the 80286 protected mode
  324. operation and the continual load of selectors. Some day when I get
  325. Windows NT, I'll get back to this. Meanwhile I'll stick to DOS and
  326. the djgcc compiler.
  327.  
  328. Tom Almy
  329. tom.almy@tek.com
  330.  
  331.  
  332.                             07-09-92
  333.  
  334. Operation of setf changed to allow a *setf-lambda* expression as an
  335. alternative to the *setf* expression. This new format is eval'ed
  336. twice allowing defsetf to work in a fashion compatible with Common
  337. Lisp. 
  338.  
  339. Added the #+ and #- reader macros and the *features* global variable.
  340. Init.lsp defines the only feature ":xlisp".
  341.  
  342. Added RATIONAL, because I found out the algorithm to do it. Believe
  343. me, it isn't easy! I also modified ratio arithmetic so that if a
  344. value cannot be exactly represented as a ratio of fixnums the result
  345. is expressed as a flonum. This affects + - * / REM MOD 1+ and 1-.
  346.  
  347. Fixed + - * 1+ 1- so that integer/integer-complex operations that
  348. overflow become float/float-complex. Fixed LCM to eliminate overflow
  349. in cases where least common multiple would fit in an integer, and
  350. give an error when it would not.
  351.  
  352.                             05-28-92 
  353. In STEPPER.LSP, fixed bug stepping through RETURN, and display in
  354. most cases of RETURN, RETURN-FROM, GO, and THROW. Also fixed bug so
  355. that Enter key can be used for "Newline" command. 
  356.  
  357. Fixed bug in printing of closures, MS-DOS medium memory model.
  358.  
  359.                             04-13-92
  360. Fixed two reported errors in unixprim.c.
  361.  
  362.                             03-23-92
  363. No change to version number -- minor upgrade
  364.  
  365. Bug fix in common.lsp (function copy-alist), queens2.lsp; new
  366. makefiles for SPARC and RS6000; UNIX support improved--file
  367. redirection, long file names, and unixprim.c.
  368.  
  369. "-b" command switch for "batch" operation -- uncaught errors cause
  370. xlisp to exit to OS.
  371.  
  372.                             03-02-92
  373. Fixed "fatal" error in function aref.
  374.  
  375.                             02-13-92
  376. New version number 2.1d, and name changed to XLISP-PLUS to aid in
  377. differentiation.
  378.  
  379. Many compilation options have been removed to provide more consistant
  380. code. There have been bug fixes in the xlobj (problems with 32 bit
  381. compilers, and special variable binding), gccstuff, and unixstuf 
  382. (SYS V support) files. A bug causing (type-of 'x) to return CONS has
  383. been fixed
  384.  
  385. Documentation is overhauled, and is somewhat simpler because of the fewer
  386. compilation variations.
  387.  
  388. New features are rational numbers and readtable-case.
  389.  
  390. Added Amiga support.
  391.  
  392.  
  393.                             11-15-91
  394.  
  395. No change to the version number -- this is a maintenance upgrade.
  396.  
  397. Three additional bugs have been identified and fixed. The first corrects
  398. a problem in typep that caused the type NUMBER to never match. The
  399. second implements *dos-input* for the 80386 XLISP, and corrects a minor
  400. problem with dribble in that version.
  401.  
  402.  
  403.                                10-22-91
  404.  
  405. No change to the version number -- this is a maintenance upgrade.
  406.  
  407. There have been two bug fixes made to this version. The first corrects
  408. problems with save/restore and binary files when the 80386 XLISP is used
  409. and the second corrects problems with string streams during garbage
  410. collections that print messages.
  411.  
  412. In addition a new version of go32, DJ Delorie's DOS extender, is being used.
  413. This one is VCPI compatible as well as XMS compatible (still not DPMI).
  414. It is also possible to use it without an 80387 using his new 80387 emulator.
  415.  
  416. Put the file emu387 in the directory with your binaries (lets say "c:\bin")
  417. and then set the environment variable: "set go32=emu c:/bin/emu387" -- note
  418. the forward slashes. XLISP will now use the 80387 emulator, even if an 80387
  419. is present.
  420.  
  421. Tom Almy
  422. toma@sail.labs.tek.com
  423.  
  424.                             8-19-91
  425.  
  426. This archive contains a copy of the source file dldmem.c with a bug fixed.
  427.  
  428. The version number has been revised to 2.1c. Please change file xlisp.c to
  429. match.
  430.  
  431. Also included are new executable files. Please delete any existing
  432. 80386 XLISP executables because of distribution licensing problems and
  433. use this executable which has been compiled with  the GNU C compiler and
  434. uses DJ Delorie's DOS extender, go32. While this version does not run in
  435. VCPI or DPMI environments, it does offer virtual memory (swaps to disk)
  436. and will spawn a DOS shell with almost the entire lower memory free (I've
  437. incorporated Ralf Brown's SPAWNO into go32!).
  438.  
  439. Tom Almy
  440. toma@sail.labs.tek.com
  441.